package com.chen.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chen.mapper.SkuClassMapper;
import com.chen.pojo.common.PageResult;
import com.chen.pojo.dto.SkuClassDto;
import com.chen.pojo.entry.SkuClass;
import com.chen.service.SkuClassService;
import com.chen.utils.PageUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author chen
 * @version 1.0
 * @create_date 2025/8/16
 * 分类管理业务实现类
 */
@Service
@Transactional
public class SkuClassServiceImpl implements SkuClassService {
    @Autowired
    private SkuClassMapper skuClassMapper;

    /**
     * 增加分类
     *
     * @param className 分类名称
     * @return
     */
    @Override
    public Boolean addSukClass(String className) {
        // 根据登录名查询用户信息
        SkuClass skuClass = new SkuClass();
        skuClass.setClassName(className);
        skuClassMapper.insert(skuClass);
        return Boolean.TRUE;
    }

    /**
     * 分页查询
     *
     * @param pageIndex
     * @param pageSize
     * @param className
     * @return
     */
    @Override
    public PageResult<SkuClass> searchList(Integer pageIndex, Integer pageSize, String className) {
        // 封装分页信息
        Page<SkuClass> page = new Page<>(pageIndex, pageSize);
        // 构建查询条件
        LambdaQueryWrapper<SkuClass> wrapper = new LambdaQueryWrapper<>();
        if (StringUtils.isNotBlank(className)) {
            wrapper.like(SkuClass::getClassName, className);
        }
        // 调用sql方法，返回分页结果page
        skuClassMapper.selectPage(page, wrapper);

        return PageUtils.mapperResult(page);
    }

    /**
     * 根据classId查询数据
     *
     * @param classId
     * @return
     */
    @Override
    public SkuClass getByClassId(String classId) {
        return skuClassMapper.selectById(classId);
    }

    /**
     * 更新
     *
     * @param classId
     * @param skuClassDto
     * @return
     */
    @Override
    public Boolean updateSkuClass(String classId, SkuClassDto skuClassDto) {
        // 编辑更新信息
        SkuClass skuClass = new SkuClass();
        skuClass.setClassName(skuClassDto.getClassName());
        skuClass.setClassId(classId);
        // 调用sql
        skuClassMapper.updateById(skuClass);
        return true;
    }

    /**
     * 删除商品分类
     *
     * @param classId classId
     */
    @Override
    public void deleteSkuClass(String classId) {
        // 编辑删除参数信息
        skuClassMapper.deleteById(classId);
    }
}
